/*
*
==============================================================================
*  Name        : 
*  Part of     : Omen Game Engine
*  Description : 
*  Version     : 1.0
*
*  Copyright (c) 2013 Lauri Kortevaara.
* 
==============================================================================
*/

#pragma once

#include "OmenConfig.h"
#include "IOmenObject.h"
#include "IOmenTexture.h"
#include "OmenDataTypes.h"

namespace Omen
{
    namespace GUI
    {
        class OMEN_API IElement : public Omen::IObject
        {
        public:
            virtual Omen_GUID classId() const = 0;    /// <summary>Defines the class ID</summary>

            virtual const POINT2D       position() const = 0;
            virtual const Omen::Float&  width() const = 0;
            virtual const Omen::Float&  height() const = 0;

            virtual void setPosition( const POINT2D& position ) = 0;
            virtual void setWidth(const Omen::Float& width) const = 0;
            virtual void setHeight(const Omen::Float& height) const = 0;


                
        protected:
        private:
        };
    } // namepspace GUI
} // namespace Omen
